package com.itheima.HomeWork_day12;

import java.io.*;
import java.nio.charset.Charset;

/*
转换流使用
 */
public class TranStream04 {
    public static void main(String[] args) throws IOException {


        method1();
      method2();
     //   method3();
    }

    private static void method3() throws IOException {
        //解决方法2: 该方法在jdk11版本以上才可以使用Charset.forName()方法,将文本的编码格式进行转换

//        //主要是使用方法中的
//        FileReader fr=new FileReader("C:\\Users\\wyb1125148300\\Desktop\\aa.txt", Charset.forName("utf-8"));
//
//        int len;
//        while((len=fr.read())!=-1){
//            System.out.println((char) len);
//        }
//
//        //关闭流
//        fr.close();
    }

    //===================================================================

    private static void method2() throws IOException {
        //解决方法1 中的编码格式错误问题,有如下方法

        //要读取的文件格式为什么,就是用该编码格式去读取
        InputStreamReader isr=new InputStreamReader(new FileInputStream("C:\\Users\\wyb1125148300\\Desktop\\aa.txt"),"gbk");

        int len;
        while((len=isr.read())!=-1){
            System.out.println((char) len);
        }
        //关闭流
        isr.close();

//============================================================================


        //使用上述同种方法将数据写入到文件中
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("C:\\Users\\wyb1125148300\\Desktop\\aa.txt"),"gbk");

        osw.write("不知天上宫阙,今夕是何年?");
        //关闭流
        osw.close();
    }




    private static void method1() throws IOException {

        FileReader fr=new FileReader("C:\\Users\\wyb1125148300\\Desktop\\aa.txt");

        //当所读取的文本编码格式与idea编码(utf-8)格式不一致时,就会出现乱码
        int len;
        while((len=fr.read())!=-1){
            System.out.println((char) len);
        }
        fr.close();
    }
}
